#include <stdio.h>

#define SQUARE(x) x*x       //带参数宏, 定义'x'为x的平方

int main(void)
{
    int x;

    printf("请输一个整数: ");
    scanf("%d", &x);

    printf("%d的平方是: %d\n", x, SQUARE(x));//x*x
    printf("%d的平方是: %d\n", x+1, x+1*x+1);//宏不带括号的后果,平方变成:x+x+1
    //正确的宏:
    //      #define SQUARE(x) (x)*(x)       都带上括号

    //实际上, 用宏代替写函数/代码不行的, 会隐藏bug

    return 0;
}
